# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgname=pyside6
_qtver=6.2.0
pkgver=${_qtver/-/}
pkgrel=1
arch=(x86_64)
url='https://www.qt.io'
license=(LGPL)
pkgdesc='Enables the use of Qt6 APIs in Python applications'
depends=(shiboken6 qt6-declarative)
makedepends=(cmake ninja python-setuptools vulkan-headers python-numpy
             qt6-tools qt6-quickcontrols2 qt6-svg qt6-3d qt6-scxml qt6-datavis3d qt6-charts qt6-multimedia
             qt6-location qt6-networkauth qt6-remoteobjects qt6-sensors qt6-serialport qt6-connectivity
             qt6-webchannel qt6-webengine qt6-websockets)
optdepends=('qt6-tools: QtHelp, QtUiTools bindings'
            'qt6-quickcontrols2: QtQuickControls2 bindings'
            'qt6-svg: QtSvg bindings'
            'qt6-3d: Qt3D bindings'
            'qt6-scxml: QtScxml bindings'
            'qt6-datavis3d: QtDataVisualization bindings'
            'qt6-charts: QtCharts bindings' 
            'qt6-multimedia: QtMultimedia bindings' 
            'qt6-serialport: QtSerialPort bindings' 
            'qt6-webengine: QtWebEngine bindings' 
            'qt6-remoteobjects: QtRemoteObjects bindings' 
            'qt6-sensors: QtSensors bindings' 
            'qt6-websockets: QtWebSockets bindings' 
            'qt6-networkauth: QtNetworkAuth bindings' 
            'qt6-datavis3d: QtDataVisualization bindings')
_pkgfn=pyside-setup-opensource-src-$_qtver
source=(https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-$pkgver-src/${_pkgfn}.tar.xz
        designer-plugin-install-dir.patch)
sha256sums=('fed210b662129955332d2609a900b5b8643130134e4682371b26a9ba60740d01'
            '66e895e07d5b01c64a94092353854c946fd7fc445b6181068dca290b5a3887e0')

prepare() {
  patch -d $_pkgfn -p1 < designer-plugin-install-dir.patch # Fix designer plugin install dir
}

build() {
  cmake -B build -S $_pkgfn/sources/pyside6 -G Ninja \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBUILD_TESTS=OFF \
    -DPYTHON_EXECUTABLE=/usr/bin/python
  cmake --build build
}

package() {
  DESTDIR="$pkgdir" cmake --install build

# Install egg-info
  export PATH="/usr/lib/qt6/bin:$PATH"
  cd $_pkgfn
  python setup.py egg_info --build-type=pyside6
  _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
  cp -r PySide6.egg-info "$pkgdir"/$_pythonpath
}
